package com.xiaoshuidi.cloud.module.iot.service;


import com.xiaoshuidi.cloud.module.iot.api.device.vo.AmmeterInfoResModel;
import com.xiaoshuidi.cloud.module.iot.api.device.vo.DeviceDosageVo;
import com.xiaoshuidi.cloud.module.iot.common.ResultModel;
import com.xiaoshuidi.cloud.module.iot.dal.model.ammeter.*;
import com.xiaoshuidi.cloud.module.iot.dal.model.watermeter.details.WaterMeterReportRequestModel;

/**
 * @author Sky
 * create 2019/07/01
 * email sky.li@ixiaoshuidi.com
 **/
public interface AmmeterService {
    /**
     * 第三方公共业务-刷新电表
     *
     * @param ammeterInfoReqModel
     * @return
     */
    ResultModel<AmmeterInfoResModel> refreshAmmeterInfo(AmmeterInfoReqModel ammeterInfoReqModel) throws Exception;

    /**
     * 第三方公共业务-设置电表合闸
     *
     * @param ammeterSwitchOnOffReqVO
     * @return
     */
    ResultModel<AmmeterSwitchOnOffResVO> setAmmeterSwitchOn(AmmeterSwitchOnOffReqVO ammeterSwitchOnOffReqVO) throws Exception;

    /**
     * 第三方公共业务-设置电表跳闸
     *
     * @param ammeterSwitchOnOffReqVO
     * @return
     */
    ResultModel<AmmeterSwitchOnOffResVO> setAmmeterSwitchOff(AmmeterSwitchOnOffReqVO ammeterSwitchOnOffReqVO) throws Exception;

    /**
     * 电表用电明细
     *
     * @param ammeterReportReqVO
     * @return
     */
    ResultModel<AmmeterReportResVO> getAmmeterReport(WaterMeterReportRequestModel ammeterReportReqVO);


    /**
     * 电表详情
     *
     * @param ammeterInfoReqModel
     * @return
     */
    ResultModel<AmmeterInfoResModel> getAmmeterInfo(AmmeterInfoReqModel ammeterInfoReqModel);

    //退租清算
    void updateSage(DeviceDosageVo deviceDosageVo);
}
